package logica.robots;

import logica.Nivel;
import logica.pisos.Piso;
import logica.premios.Premio;

/**
 * Clase RobotCivil: modela un robot civil, un robot es capaz de moverse por el nivel recolectando coleccionables y premios hasta 
 * llegar al piso final del nivel. En el transcurso este va usando su combustible y puede reponerlo mediante los packs de 
 * combustibles que se encuentran como premio en el nivel, tambien aunmenta sus puntos mediantes la recoleccion de packs
 * de puntos. 
 * Un robot civil se distingue por tener un tanque de combustible de 140 unidades de combustible.
 * Su orientación se codifica según la clase Orientacion.
 * @author Amorosi, Javier (94528)
 * @author Antiman, Nehuen (102440)
 */
public class RobotCivil extends Robot {
	
	protected final static int maxCombustible=140; 

	/**
	 * Constructor de la clse RobotCivil, inicia los atributos de un robot tal cual la clase Robot y además
	 * incializa su combustible en su máxima capacidad. 
	 */
	public RobotCivil() {
		super();
		combustible=maxCombustible; 
	}

	@Override
	public void recolectarPremio(Premio p) {		
		if(p!=null){
			if (combustible + p.getCombustible()< maxCombustible){
				combustible += p.getCombustible();
			}
			else
				combustible=maxCombustible;
			puntos += p.getPuntos();
		}
	}
	

	/**
	 * El robot civil no cuenta con ninguna acción especial, por lo que este método siempre
	 * retorna false.
	 * @return false, por tener acción especial alguna.
	 */
	public boolean accionEspecial(Nivel nivel, Piso pisoActual) {
		return false;
	}
	
}
